---
title: lint-staged
description: Kør automatisk Ultracite på dine staged Git-filer med lint-staged
---

Ultracite integreres problemfrit med [lint-staged](https://github.com/okonet/lint-staged) for automatisk at formatere og lint'e din kode før hvert commit. Dette sikrer, at kun ren, korrekt formatteret kode kommer ind i dit repository.

## Hvad er lint-staged?

lint-staged er et værktøj, der kører linters og formateringsværktøjer imod staged Git-filer. Det er særligt nyttigt, fordi det:

- Behandler kun filer, der rent faktisk bliver committet
- Forhindrer dårligt formatteret kode i at komme ind i dit repository
- Kører hurtigt, da det kun tjekker ændrede filer
- Integreres perfekt med Git hooks

## Hvordan Ultracite bruger lint-staged

Når du kører `npx ultracite init`, hvis du vælger lint-staged-optionen, vil Ultracite automatisk:

1. **Installere lint-staged** som en udviklingsafhængighed
2. **Oprette eller opdatere** din lint-staged-konfiguration
3. **Konfigurere formatteren** til at køre på relevante filtyper

Standardkonfigurationen kører `npx ultracite fix` på disse filtyper:
- JavaScript/TypeScript-filer (`.js`, `.jsx`, `.ts`, `.tsx`)
- JSON-filer (`.json`, `.jsonc`)
- CSS-filer (`.css`, `.scss`)
- Markdown-filer (`.md`, `.mdx`)

## Understøttede konfigurationsformater

Ultracites lint-staged-integration understøtter alle standard lint-staged-konfigurationsformater:

### package.json

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
  }
}
```

### .lintstagedrc.json

```json title=".lintstagedrc.json"
{
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
}
```

### .lintstagedrc.js (CommonJS)

```javascript title=".lintstagedrc.js"
module.exports = {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.mjs (ES Modules)

```javascript title=".lintstagedrc.mjs"
export default {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.yaml

```yaml title=".lintstagedrc.yaml"
"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":
  - 'npx ultracite fix'
```

## Smart konfigurationssammensmeltning

Hvis du allerede har en lint-staged-konfiguration, vil Ultracite:

- **Finder** dit eksisterende konfigurationsformat
- **Fletter** Ultracite-reglerne med dine eksisterende regler
- **Bevarer** dine brugerdefinerede konfigurationer
- **Opdaterer** filen på stedet

Det betyder, at du trygt kan køre `npx ultracite init`, selvom du allerede har lint-staged opsat.

## Hvordan det virker

1. **Pre-commit-hook**: lint-staged kører før hvert commit via Husky
2. **Fildetektion**: Kun staged filer, der matcher mønstrene, behandles
3. **Format-kommando**: `npx ultracite fix` kører på hver matchende fil
4. **Automatisk rettelse**: Biome retter automatisk problemer, hvor det er muligt
5. **Gen-tilføjelse til staging**: Rettede filer gen-tilføjes automatisk til commit

## Manuel konfiguration

Hvis du har brug for at tilpasse din lint-staged-opsætning, kan du ændre konfigurationen efter initialisering:

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": ["npx ultracite fix", "npm run test:unit"],
    "*.{json,jsonc}": ["npx ultracite fix"],
    "*.{css,scss}": ["npx ultracite fix", "npm run test:styles"],
    "*.{md,mdx}": ["npx ultracite fix"]
  }
}
```

## Kommandointegration

lint-staged-integrationen fungerer med Ultracites kommandostruktur:

- **`npx ultracite fix`**: Kører Biome med automatisk rettelse (bruges af lint-staged)
- **`npx ultracite check`**: Kører Biome uden automatisk rettelse (til CI/manuelle tjek)

## Fejlfinding

### Konfiguration ikke fundet
Hvis du ser fejl om manglende lint-staged-konfiguration:

```bash
npx ultracite init  # Re-run initialization
```

### ESM/CommonJS-problemer
Ultracite registrerer automatisk din projekttype og opretter det passende konfigurationsformat:

- **ESM-projekter** (med "type": "module" i package.json) får `.mjs` konfigurationer
- **CommonJS-projekter** får `.cjs` konfigurationer
- **Tilbagefald**: Opretter `.lintstagedrc.json`, hvis moduledetektion fejler

### Konflikter med eksisterende konfiguration
Hvis du har komplekse eksisterende konfigurationer, kan det være nødvendigt manuelt at flette dem:

1. Lav en backup af din eksisterende lint-staged-konfiguration
2. Run `npx ultracite init`
3. Flet manuelt eventuelle brugerdefinerede regler, du skal bevare

## Bedste fremgangsmåder

1. **Hold det hurtigt**: Kør kun essentielle kontroller i lint-staged
2. **Brug specifikke mønstre**: Ret kun mod de filer, der behøver behandling
3. **Kombinér med CI**: Brug lint-staged til hurtige lokale tjek, fuld linting i CI
4. **Test din opsætning**: Foretag et testcommit for at sikre, at alt fungerer

## Relateret

- [Husky-integration](/integration/husky) - Opsætning af Git-hooks
- [Konfiguration](/configuration) - Biome-konfigurationsmuligheder
- [Opsætning](/setup) - Indledende projektopsætning